package demo07;

public class Demo01Polymiorphism {
    public static void main(String[] args) {
        Animal animal = new Cat();//向上转型
        animal.eat();
//        animal.catCatchMouse();//错误写法，如果想要写的话必须要向下转型
        Cat cat = (Cat) animal;//向下转型
        cat.catCatchMouse();

        //java.lang.ClassCastException错误，即为类型转换异常
        //因为原来是猫，不能转型为狗
//        Dog dog=(Dog) animal;
//        dog.dogWatchHouse();
        //如果想要向下转型，需要使用instanceof关键字
        if(animal instanceof Cat){
            Cat cat1 = (Cat) animal;//向下转型
            cat1.catCatchMouse();
        }
        if(animal instanceof Dog){
            Dog dog=(Dog) animal;
            dog.dogWatchHouse();
        }

    }
}
